package com.csjbot.blackgaga.model.http.product;

import com.csjbot.blackgaga.cart.entity.RobotMenuListBean;
import com.csjbot.blackgaga.cart.entity.RobotSpListBean;
import com.csjbot.blackgaga.cart.pactivity.evaluate.AnswerResponse;
import com.csjbot.blackgaga.model.http.bean.AdInfo;
import com.csjbot.blackgaga.model.http.bean.PayResponse;
import com.csjbot.blackgaga.model.http.bean.PayResult;
import com.csjbot.blackgaga.model.http.bean.ProductInfo;

import io.reactivex.Observer;
import okhttp3.ResponseBody;

/**
 * Created by jingwc on 2017/9/18.
 */

public interface IProduct {
    /**
     * 获取产品信息
     *
     * @param observer 订阅者
     */
    void getProductInfo(Observer<ProductInfo> observer);

    /**
     * 获取本地产品信息
     */
    ProductInfo getLocalProduct();

    /**
     * 获取到本地导航列表信息
     */

    RobotMenuListBean getMenuList();


    /**
     * 获取到本地产品信息
     */

    RobotSpListBean getSpList(String menuid);


    /**
     * 删除到本地产品信息
     */
    boolean removeSpList(String lan);

    /**
     * 删除到本地导航列表信息
     */
    boolean removeMenuList();

    /**
     * 获取广告信息
     *
     * @param observer 订阅者
     */
    void getAdInfo(Observer<AdInfo> observer);

    /**
     * 生成支付订单
     */
    void generateOrder(String json, Observer<PayResponse> observer);

    /**
     * 发去评价
     * @param json
     * @param observer
     */
    void sendEvalution(String json, Observer<AnswerResponse> observer);

    /**
     * 查询订单支付情况
     *
     * @param orderid 订单id
     */
    void searchPayResult(String orderid, Observer<PayResult> observer);

    /**
     * 获取到导航列表，包括主页菜单的和产品菜单的
     *
     * @param observer
     */
    void getRobotMenuList(String sn,String language, Observer<RobotMenuListBean> observer);

    /**
     * 全路径获取到url 查询产品列表
     *
     * @param url
     * @param sn
     * @param observer
     */
    void dynamicGetRobotSpList(String url, String sn, Observer<RobotSpListBean> observer);

    /**
     * 指定尾部路径 查询产品列表
     *
     * @param url
     * @param observer
     */
    void fullDynamicGetRobotSpList(String url, Observer<RobotSpListBean> observer);

    void getProductImage(String url, Observer<ResponseBody> observer);
}
